﻿#pragma once

class CResInfWrapper : public CBaseWrapper
{
public:
    int32_t x7;
    double xMinUnitK; // x8,x9
    float *rawbagFreq;
    int32_t x11;

    CResInfWrapper();

    void printSelf(char *captionUpper, int32_t deep);

    // sub_1001D270
    CResInfWrapper *init(TDLLRESINF *resInf);

    // sub_1001DE60
    CResInfWrapper *init(TDLLResultListItem *head, int32_t len, int32_t *num);

    // sub_1001A9D0
    void increaseNum(int32_t incNum);

    // sub_10022270
    int32_t filterOutInvalidTr(TDLLResultListItem *pRes, int32_t loopCount);

    // sub_1002201E
    int32_t calcW50etcAll(TDLLResultListItem *pRes, int32_t tail, int32_t *smpHead, float freq);

    // sub_100206EB
    int32_t cleanIdnoNameEtc();

    // sub_1002078D
    int32_t calcAreaPer();

    // sub_1001AF90
    int32_t setIdno(int32_t idx, int32_t idno);

    // sub_1001AFC0
    char *setName(int32_t idx, char *name);

    // sub_10022DF9
    double getInBandOutRTime(double idtTime, double band, int32_t based, double factor);

    // sub_10022C51
    int32_t getInBandOutIdex(double idtTime, double band, int32_t based, double factor);

    // sub_10022871
    int32_t isIdtRtimeInBands(int32_t idx, double idtTime, double band, double factor);

    // sub_1002273F
    double fetchResultRTime(int32_t idx, double *tLeft, double *tRight, double factor);

    // sub_10022665
    double getALeftProportion(int32_t idx);

    // sub_1002255F
    double getTsOrPrevTe(int32_t idx);

    // sub_100226D2
    double getARightProportion(int32_t idx);

    // sub_100225DA
    double getTeOrNextTs(int32_t idx);

    // sub_10022B4A
    int32_t getAOptimalIdx(double ceilRTime, int32_t basedOn, int32_t idx, int32_t newIdx);

    // sub_1001AC40
    int32_t getIdno(int32_t idx);

    // sub_1001ACC0
    double getArea(int32_t idx);

    // sub_1001ACE0
    double getHeight(int32_t idx);

    // sub_1001B030
    char *setIdnoAndName(int32_t idx, int32_t idno, char *name);

    // sub_1001AC80
    double getAreaOrHeight(int32_t bArea, int32_t idx);

    // sub_1001AC10
    int32_t setConc(int32_t idx, double conc);

    // sub_100223CC
    double getAreaOrHeightByIdno(int32_t onArea, int32_t idno);

    // sub_1001AC60
    double getConc(int32_t idx);

    // sub_100220B1
    int32_t filterOutInvalidItem(TDLLResultListItem *pRes, int32_t tail, int32_t minHeight, int32_t minArea, char flag,
                                 int32_t *zero);

    // sub_1001DCD0
    int32_t setXMinUnitK(TMiscellaneous *wParam);
};
